import axios from "axios";


export const baseUrl='https://www.hotspotin.top/mall/';

import { ElMessage } from "element-plus";

const instance = axios.create({
  baseURL: baseUrl,
  timeout: 3000,
  headers: {
	  "Content-Type":"application/json"
  },
});


// 添加请求拦截器
instance.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
	console.log("请求拦截器config：",config)
	config.headers.Authorization=sessionStorage.getItem("token")
    return config;
  }, function (error) {
    // 对请求错误做些什么
	console.log("请求拦截器error：",error)
    return Promise.reject(error);
  });

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
	console.log("响应拦截器response：",response)
    return response;
  }, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
	console.log("响应拦截器error：",error)
	ElMessage.error(error.message)
    return Promise.reject(error);
  });


function concatUrl(data){
	var arr=[]
	for(var key in data){
		arr.push(key+"="+data[key])
	}
	return arr.join("&");
}

//封装一个post+get网络请求的方法；
async function httpRequest(url,method,data){//data={adminAccount:"a",adminPassword:"b"}
	
	let config={
		url,
		method
	}
	if(method.toLowerCase()=="get"){
		if(data && JSON.stringify(data)!="{}"){
			//地址
			config.url+="?"+concatUrl(data)
		}
	}else{
		if(data && JSON.stringify(data)!="{}"){
			config.data=data
		}
	}
	//console.log(config)
	
	let res=await instance.request(config);
	let resData=res.data;
	
	//console.log('res',resData)
	try{
		if(resData.code==200){
			return resData.data;
		}else{
			ElMessage.error(resData.msg)
		}
	}catch(error){
		console.log('error',error)
		ElMessage("服务器请求错误")
	}
	
}


export class request{
	static async getRequest(url,data){
		return await httpRequest(url,"get",data)
	}
	static async postRequest(url,data){
	
		return await httpRequest(url,"post",data)
	}
}
